package com.cke.yang.common.domain.model;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;

/**
 * 包含审计字段的基础Model
 *
 * @author yuyang、
 * @date 2025-11-18 00:00:00
 */
@Getter
@Setter
public class AuditModel<T extends Model<T>> extends Model<T> {
    /**
     * 创建时间
     */
    @TableField(value="created_at", fill = FieldFill.INSERT)
    private Date createdAt;

    /**
     * 创建用户
     */
    @TableField(value="created_by", fill = FieldFill.INSERT)
    private Long createdBy;

    /**
     * 更新时间
     */
    @TableField(value="last_updated_at", fill = FieldFill.INSERT_UPDATE)
    private Date lastUpdatedAt;

    /**
     * 更新用户
     */
    @TableField(value="last_updated_by", fill = FieldFill.INSERT_UPDATE)
    private Long lastUpdatedBy;

    /**
     * NameSpace 命名空间
     */
    @TableField(value="name_space")
    private String nameSpace;

    /**
     * 数据变更版本号
     */
    @TableField(value = "object_version_number")
    private Long objectVersionNumber;

}
